# encoding:utf-8
'''
@author : xaing
@time : 2019/4/3 15:11
@地址 : 广州
@作用 : 做过封装的pyqt5 按钮添加事件
@结果 :
'''

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QToolTip, QPushButton, QMessageBox
from PyQt5.QtGui import QIcon, QFont
from PyQt5.QtCore import QCoreApplication





# QFont类：前面有一个是字体类型名，后面的数值是字体大小
# move()： 函数设置了具体的地址，是以左上角为原点横纵坐标分别向下增长的坐标。而且设置的是相对位移（相对于父控件）
# QWidget：父组件
# p_str：标题
# p_str_1：具体信息
# buttons：选择的button

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QToolTip, QLineEdit, QMessageBox, QDesktopWidget, QTextEdit
from PyQt5.QtGui import QIcon, QFont
from PyQt5.QtCore import QCoreApplication


class Calculater(QWidget):


    def __init__(self):
        super().__init__()
        self.setUI()


    def setUI(self):
        # 设置字体
        QToolTip.setFont(QFont("隶书",  16))
        font = QFont('宋体', 12)

        # 设置宽高
        self.resize(600, 400)
        # 定位，初始化程序放置在桌面的位置
        self.move(300, 400)
        # 标题
        self.setWindowTitle("计数器")
        # 标题图片
        self.setWindowIcon(QIcon('./1.png'))

        # 调用函数
        self.center()

        # 设置了一个方框
        self.line = QLineEdit(self)
        self.line.resize(500, 200)
        self.line.move(10, 10)
        self.line.setFont(font)

        # 文本中显示数字
        self.Text = QTextEdit(self)
        self.Text.resize(500, 100)
        self.Text.move(10, 10)
        self.Text.setFont(font)
        self.Text.setText(str(0))

        # 显示
        self.show()


    def jisuan(self):
        s = self.line.text()
        print(str(s))
        if len(s) == 0:
            self.Text.setText(str(0))
            return False

        # 使得能够接受^这样的用法
        s = s.replace('^', '**')
        try:
            ans = eval(s)
        except Exception as e:
            print(str(e))
            return False
        else:
            self.Text.setText(str(ans))


    def center(self):
        qr = self.frameGeometry()
        cp = QDesktopWidget().availableGeometry().center()
        qr.moveCenter(cp)
        self.move(qr.topLeft())


if __name__ == '__main__':
    app = QApplication(sys.argv)

    ex = Calculater()

    sys.exit(app.exec_())